/**   
* 所属公司：稻普控股集团
* 项目名称：dpqc-parent-manager-common   
* 类名称：MoneyUtil   
* 类描述：   
* 创建人：zhangpp
* 创建时间：2017年4月5日 下午6:10:58   
* 修改人：zhangpp
* 修改时间：2017年4月5日 下午6:10:58   
* 修改备注：   
* @version V1.0     
*/ 
package com.zjdiepu.www.common.util;

import java.math.BigDecimal;

/**   
 * 所属公司：稻普控股集团
 * 项目名称：dpqc-parent-manager-common   
 * 类名称：MoneyUtil   
 * 类描述：   
 * 创建人：zhangpp
 * 创建时间：2017年4月5日 下午6:10:58   
 * 修改人：zhangpp
 * 修改时间：2017年4月5日 下午6:10:58   
 * 修改备注：   
 * @version V1.0     
 */
public class MoneyUtil 
{

   private static final int DEF_DIV_SCALE = 10;
	 
	 /**
    * 两个Double数相减
    * @param v1
    * @param v2
    * @return Double
    */
   public static Double sub(Double v1,Double v2){
       BigDecimal b1 = new BigDecimal(v1.toString());
       BigDecimal b2 = new BigDecimal(v2.toString());
       return b1.subtract(b2).doubleValue();
   }
   
   /**
    * 两个Double数相加
    * @param v1
    * @param v2
    * @return Double
    */
   public static Double add(Double v1,Double v2){
       BigDecimal b1 = new BigDecimal(v1.toString());
       BigDecimal b2 = new BigDecimal(v2.toString());
       return b1.add(b2).doubleValue();
   }
   
   /**
    * 两个Double数相乘
    * @param v1
    * @param v2
    * @return Double
    */
   public static Double mul(Double v1,Double v2){
       BigDecimal b1 = new BigDecimal(v1.toString());
       BigDecimal b2 = new BigDecimal(v2.toString());
       return b1.multiply(b2).doubleValue();
   }
   
   /**
    * 两个Double数相除
    * @param v1
    * @param v2
    * @return Double
    */
   public static Double div(Double v1,Double v2){
       BigDecimal b1 = new BigDecimal(v1.toString());
       BigDecimal b2 = new BigDecimal(v2.toString());
       return b1.divide(b2,DEF_DIV_SCALE,BigDecimal.ROUND_HALF_UP).doubleValue();
   }
   
   /**
    * 两个Double数相除，并保留scale位小数
    * @param v1
    * @param v2
    * @param scale
    * @return Double
    */
   public static Double div(Double v1,Double v2,int scale){
       if(scale<0){
           throw new IllegalArgumentException(
           "The scale must be a positive integer or zero");
       }
       BigDecimal b1 = new BigDecimal(v1.toString());
       BigDecimal b2 = new BigDecimal(v2.toString());
       return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
   }
}
